package com.tan00xu.service;

import com.tan00xu.vo.Result;
import com.tan00xu.vo.params.ArticleParam;
import com.tan00xu.vo.params.PageParams;

public interface ArticleService {


    /**
     * 根据前端传来的分页信息（PageParams类）查询文章列表
     *
     * @param pageParams PageParams类
     * @return
     */
    Result listArchivesByPageParams(PageParams pageParams);

    /**
     * 分页查询文章列表
     */
    Result listArticles(PageParams pageParams);

    /**
     * 获取最热文章列表
     *
     * @param limit 条数
     * @return Result
     */
    Result listHotArticles(int limit);

    /**
     * 获取最新文章列表
     *
     * @param limit 条数
     * @return Result
     */
    Result listNewArticles(int limit);

    /**
     * 获取文章归档
     *
     * @return Result
     */
    Result listArchives();

    /**
     * 根据文章id获取文章详情
     *
     * @param articleId 文章id
     * @return Result
     */
    Result getArticleById(Long articleId);

    /**
     * 发布文章
     *
     * @param articleParam 文章参数
     * @return
     */
    Result publishArticle(ArticleParam articleParam);


    /**
     * 根据文章id删除文章
     * @param articleId 文章id
     * @param token 用户token
     * @return
     */
    Result deleteArticleByArticleId(Long articleId, String token);
}
